
enum EServerPacketType;
enum ETeamID;
struct packet_base;
class CNetrekClientListener;

namespace AVUI
{
    class FrameworkElement;
}

class CGameStateTeamAndShipSelect : public CBaseGameState, public IPacketSink
{
public:
    CGameStateTeamAndShipSelect() { }

    bool ProcessPacket(EServerPacketType, const packet_base* pPacket);
    void FrameStart();
    void Initialize(CNetrekClientListener* pListener);
    void Cleanup();

private:
    void EnableUIElement(const WCHAR* wzName, bool isEnabled);
    void PickRejectedOK(EDialogResult) { };

    void FedTeamClicked(AVUI::Object*, AVUI::RoutedEventArgs*);
    void RomTeamClicked(AVUI::Object*, AVUI::RoutedEventArgs*);
    void KliTeamClicked(AVUI::Object*, AVUI::RoutedEventArgs*);
    void OriTeamClicked(AVUI::Object*, AVUI::RoutedEventArgs*);
    void TeamSelected(ETeamID eTeamID);
    void UpdateValidTeams();
    EShipType GetShipType();

    float m_flTimeSinceLastRequest;
    AVUI::FrameworkElement* m_pRoot;
};




